package com.hh.base.util.ext

import android.annotation.SuppressLint
import com.alibaba.fastjson.JSON
import java.text.SimpleDateFormat
import java.util.Date

/**
 * Create By hHui on 2025/4/3 16:57
 *
 * @description String扩展
 */

/** String转时间 **/
@Throws
@SuppressLint("SimpleDateFormat")
fun String.toDate(type: DateType = DateType.SECOND): Date {
    return when (type) {
        DateType.YEAR -> SimpleDateFormat("yyyy").parse(this)
        DateType.MONTH -> SimpleDateFormat("yyyy-MM").parse(this)
        DateType.DAY -> SimpleDateFormat("yyyy-MM-dd").parse(this)
        DateType.HOUR -> SimpleDateFormat("yyyy-MM-dd HH").parse(this)
        DateType.MINUTE -> SimpleDateFormat("yyyy-MM-dd HH:mm").parse(this)
        DateType.SECOND -> SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(this)
        else -> throw Exception()
    }
}


/** 删除字符串的最后一个字符 **/
fun String.deleteLastChar(): String {
    return this.substring(0, this.length - 1)
}

/** 删除字符串的第一个字符 **/
fun String.deleteFirstChar(): String {
    return this.substring(1, this.length)
}

/** 在字符串末尾追加字符串 **/
fun String.append(data: String): String {
    val sb = StringBuffer(this)
    return sb.append(data).toString()
}

/** String转实体类 **/
fun <T> String.toModel(type: Class<T>): T {
    return JSON.parseObject(this, type)
}

/** String转数组 **/
fun <T> String.toModelList(type: Class<T>): List<T> {
    return JSON.parseArray(this, type)
}
